﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	///<summary>
	///(Регл)
	///</summary>
	[DataContract]
	public enum ВидыНМА
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
		[EnumMember(Value = "{\"Ссылка\":\"face4314-1522-4a97-96cb-6c13152eca07\", \"Представление\":\"ИсключительноеПравоНаИзобретение\"}")]
		ИсключительноеПравоНаИзобретение = 0,//Исключительное право патентообладателя на изобретение, промышленный образец, полезную модель
		[EnumMember(Value = "{\"Ссылка\":\"1b5e9b55-fc2e-4b95-b953-7cf1e9030980\", \"Представление\":\"ИсключительноеПравоНаПрограммыДляЭВМ\"}")]
		ИсключительноеПравоНаПрограммыДляЭВМ = 1,//Исключительное авторское право на программы для ЭВМ, базы данных
		[EnumMember(Value = "{\"Ссылка\":\"4149efd0-e37c-47e2-9cbb-eb926cf60044\", \"Представление\":\"ИмущественноеПравоНаТопологииИМС\"}")]
		ИмущественноеПравоНаТопологииИМС = 2,//Имущественное право автора или иного правообладателя на топологии интегральных микросхем
		[EnumMember(Value = "{\"Ссылка\":\"d3bb924f-6426-49dc-bf8b-4c300d2c27ca\", \"Представление\":\"ИсключительноеПравоНаТоварныйЗнак\"}")]
		ИсключительноеПравоНаТоварныйЗнак = 3,//Исключительное право владельца на товарный знак и знак обслуживания, наименование места происхождения товаров
		[EnumMember(Value = "{\"Ссылка\":\"0cdab1bd-862b-4ca2-97e8-8241c0b25ea3\", \"Представление\":\"ИсключительноеПравоНаСелекционныеДостижения\"}")]
		ИсключительноеПравоНаСелекционныеДостижения = 4,//Исключительное право на селекционные достижения
		[EnumMember(Value = "{\"Ссылка\":\"a2babb21-5374-4260-8e7e-d14243503a51\", \"Представление\":\"ОрганизационныеРасходы\"}")]
		ОрганизационныеРасходы = 5,//Организационные расходы
		[EnumMember(Value = "{\"Ссылка\":\"726f5fda-4eda-4a7a-bdab-07d865d57e37\", \"Представление\":\"ДеловаяРепутацияОрганизации\"}")]
		ДеловаяРепутацияОрганизации = 6,//Деловая репутация организации
		[EnumMember(Value = "{\"Ссылка\":\"ec98d191-5faf-46aa-afb1-bed4484ece8e\", \"Представление\":\"ПрочиеНематериальныеАктивы\"}")]
		ПрочиеНематериальныеАктивы = 7,//Прочие нематериальные активы
	}
	public static partial class ВидыНМА_Значения//:ПеречислениеСсылка
	{
		public static readonly Guid ИсключительноеПравоНаИзобретение = new Guid("136ccb96-2e15-07ca-4a97-1522face4314");//Исключительное право патентообладателя на изобретение, промышленный образец, полезную модель
		public static readonly Guid ИсключительноеПравоНаПрограммыДляЭВМ = new Guid("f17c53b9-03e9-8009-4b95-fc2e1b5e9b55");//Исключительное авторское право на программы для ЭВМ, базы данных
		public static readonly Guid ИмущественноеПравоНаТопологииИМС = new Guid("92ebbb9c-f66c-4400-47e2-e37c4149efd0");//Имущественное право автора или иного правообладателя на топологии интегральных микросхем
		public static readonly Guid ИсключительноеПравоНаТоварныйЗнак = new Guid("304c8bbf-2c0d-ca27-49dc-6426d3bb924f");//Исключительное право владельца на товарный знак и знак обслуживания, наименование места происхождения товаров
		public static readonly Guid ИсключительноеПравоНаСелекционныеДостижения = new Guid("4182e897-b2c0-a35e-4ca2-862b0cdab1bd");//Исключительное право на селекционные достижения
		public static readonly Guid ОрганизационныеРасходы = new Guid("42d17e8e-5043-513a-4260-5374a2babb21");//Организационные расходы
		public static readonly Guid ДеловаяРепутацияОрганизации = new Guid("d807abbd-d565-377e-4a7a-4eda726f5fda");//Деловая репутация организации
		public static readonly Guid ПрочиеНематериальныеАктивы = new Guid("d4beb1af-4e48-8ece-46aa-5fafec98d191");//Прочие нематериальные активы
		public static ВидыНМА Получить(this ВидыНМА Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static ВидыНМА Получить(this ВидыНМА Значение, Guid Ссылка)
		{
			if(Ссылка == ИсключительноеПравоНаИзобретение)
			{
				return ВидыНМА.ИсключительноеПравоНаИзобретение;
			}
			else if(Ссылка == ИсключительноеПравоНаПрограммыДляЭВМ)
			{
				return ВидыНМА.ИсключительноеПравоНаПрограммыДляЭВМ;
			}
			else if(Ссылка == ИмущественноеПравоНаТопологииИМС)
			{
				return ВидыНМА.ИмущественноеПравоНаТопологииИМС;
			}
			else if(Ссылка == ИсключительноеПравоНаТоварныйЗнак)
			{
				return ВидыНМА.ИсключительноеПравоНаТоварныйЗнак;
			}
			else if(Ссылка == ИсключительноеПравоНаСелекционныеДостижения)
			{
				return ВидыНМА.ИсключительноеПравоНаСелекционныеДостижения;
			}
			else if(Ссылка == ОрганизационныеРасходы)
			{
				return ВидыНМА.ОрганизационныеРасходы;
			}
			else if(Ссылка == ДеловаяРепутацияОрганизации)
			{
				return ВидыНМА.ДеловаяРепутацияОрганизации;
			}
			else if(Ссылка == ПрочиеНематериальныеАктивы)
			{
				return ВидыНМА.ПрочиеНематериальныеАктивы;
			}
			return ВидыНМА.ПустаяСсылка;
		}
		public static byte[] Ключ(this ВидыНМА Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this ВидыНМА Значение)
		{
			switch (Значение)
			{
				case ВидыНМА.ИсключительноеПравоНаИзобретение: return ИсключительноеПравоНаИзобретение;
				case ВидыНМА.ИсключительноеПравоНаПрограммыДляЭВМ: return ИсключительноеПравоНаПрограммыДляЭВМ;
				case ВидыНМА.ИмущественноеПравоНаТопологииИМС: return ИмущественноеПравоНаТопологииИМС;
				case ВидыНМА.ИсключительноеПравоНаТоварныйЗнак: return ИсключительноеПравоНаТоварныйЗнак;
				case ВидыНМА.ИсключительноеПравоНаСелекционныеДостижения: return ИсключительноеПравоНаСелекционныеДостижения;
				case ВидыНМА.ОрганизационныеРасходы: return ОрганизационныеРасходы;
				case ВидыНМА.ДеловаяРепутацияОрганизации: return ДеловаяРепутацияОрганизации;
				case ВидыНМА.ПрочиеНематериальныеАктивы: return ПрочиеНематериальныеАктивы;
			}
			return Guid.Empty;
		}
	}
}